﻿using System;
using System.Text;
using CRC.GestionSalones.Dominio.Clases;
using Iesi.Collections.Generic;

namespace CRC.Inspecciones.Dominio.Clases
{
    public class Impreso
    {
        private Int32 _id;

        public virtual Int32 Id
        {
            get { return _id; }
            set { _id = value; }
        }

        private Salon _salonInspeccionado;
        public virtual Salon SalonInspeccionado
        {
            get { return _salonInspeccionado; }
            set { _salonInspeccionado = value; }
        }

        private TipoImpreso _tipo;
        public virtual TipoImpreso Tipo
        {
            get { return _tipo; }
            set { _tipo = value; }
        }

        private Boolean _esBorrador = true;
        public virtual bool EsBorrador
        {
            get { return _esBorrador; }
            set { _esBorrador = value; }
        }

        private String _fechaInspeccion  = String.Empty;
        public virtual String FechaInspeccion
        {
            get { return _fechaInspeccion; }
            set { _fechaInspeccion = value; }
        }

        private String _nombreSalon = String.Empty;
        public virtual String NombreSalon
        {
            get { return _nombreSalon; }
            set { _nombreSalon = value; }
        }

        private String _congregacionAnfitriona = String.Empty;
        public virtual String CongregacionAnfitriona
        {
            get { return _congregacionAnfitriona; }
            set { _congregacionAnfitriona = value; }
        }

        private String _numCongregacion = String.Empty;
        public virtual String NumCongregacion
        {
            get { return _numCongregacion; }
            set { _numCongregacion = value; }
        }

        private String _otrasCongregaciones = String.Empty;
        public virtual String OtrasCongregaciones
        {
            get { return _otrasCongregaciones; }
            set { _otrasCongregaciones = value; }
        }

        private String _direccion = String.Empty;
        public virtual String Direccion
        {
            get { return _direccion; }
            set { _direccion = value; }
        }

        private String _poblacion = String.Empty;
        public virtual String Poblacion
        {
            get { return _poblacion; }
            set { _poblacion = value; }
        }

        private String _provincia = String.Empty;
        public virtual String Provincia
        {
            get { return _provincia; }
            set { _provincia = value; }
        }

        private String _cp = String.Empty;
        public virtual String CP
        {
            get { return _cp; }
            set { _cp = value; }
        }

        private String _hmnosLocales = String.Empty;
        public virtual String HmnosLocales
        {
            get { return _hmnosLocales; }
            set { _hmnosLocales = value; }
        }

        private String _fechaConstruccion = String.Empty;
        public virtual String FechaConstruccion
        {
            get { return _fechaConstruccion; }
            set { _fechaConstruccion = value; }
        }

        private String _firmaInspector = String.Empty;
        public virtual String FirmaInspector
        {
            get { return _firmaInspector; }
            set { _firmaInspector = value; }
        }

        private String _firmaCoordinador = String.Empty;
        public virtual String FirmaCoordinador
        {
            get { return _firmaCoordinador; }
            set { _firmaCoordinador = value; }
        }

        private String _fechaSolucion = String.Empty;
        public virtual String FechaSolucion
        {
            get { return _fechaSolucion; }
            set { _fechaSolucion = value; }
        }

        private String _nombreContacto = String.Empty;
        public virtual String NombreContacto
        {
            get { return _nombreContacto; }
            set { _nombreContacto = value; }
        }

        private String _telefonoContacto = String.Empty;
        public virtual String TelefonoContacto
        {
            get { return _telefonoContacto; }
            set { _telefonoContacto = value; }
        }

        private String _faxContacto = String.Empty;
        public virtual String FaxContacto
        {
            get { return _faxContacto; }
            set { _faxContacto = value; }
        }

        private String _emailContacto = String.Empty;
        public virtual String EmailContacto
        {
            get { return _emailContacto; }
            set { _emailContacto = value; }
        }


        private ISet<ElementoImpresoSalon> _lineasImpreso = new HashedSet<ElementoImpresoSalon>();
        public virtual ISet<ElementoImpresoSalon> LineasImpreso
        {
            get { return _lineasImpreso; }
            set { _lineasImpreso = value; }
        }

        private DateTime _fechaCreacion = DateTime.MinValue;
        public virtual DateTime FechaCreacion
        {
            get { return _fechaCreacion; }
            set { _fechaCreacion = value; }
        }

        private int _usuarioCreacion;
        public virtual int UsuarioCreacion
        {
            get { return _usuarioCreacion; }
            set { _usuarioCreacion = value; }
        }

        public virtual ElementoImpresoSalon ObtenerLineaImpreso(int pIdElementoSalon) {
            ElementoImpresoSalon res = null;
            foreach(ElementoImpresoSalon elem in this.LineasImpreso){
                if (elem.Elemento.Id == pIdElementoSalon)
                {
                    res = elem;
                    return res;
                }
            }
            return null;
        
        }

        private string _version = string.Empty;

        public virtual string Version
        {
            get { return _version; }
            set { _version = value; }
        }

    }
}
